<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>注册界面</title>

    <!-- 新 Bootstrap4 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.1.0/css/bootstrap.min.css">

    <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

    <!-- popper.min.js 用于弹窗、提示、下拉菜单 -->
    <script src="https://cdn.bootcss.com/popper.js/1.12.5/umd/popper.min.js"></script>

    <!-- 最新的 Bootstrap4 核心 JavaScript 文件 -->
    <script src="https://cdn.bootcss.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>

    <script>
        function codefun() {
            var email = $('#email').val();
            var codeUrl = '/api/code/create/' + email
            var countdown=60;
            var codea = $('#codea')
            $.ajax({
                type: "get",  //post put get 等等
                url: codeUrl,
                //编写注册功能时，要将异步设置为false（缺省为true）
                //如果async是ture,对于FireFox浏览器，会刷新掉alert()弹出框的内容
                //对于Chrome浏览器，第一次注册时会执行error的回调函数，输出“请求在连接过程中出现错误..”
                async:false,
                // data: {  //要传入ashx文件的数据
                //     "user": user,
                //     "password": password
                // },
                success: function (data) {
                    //连接至ashx文件成功时，执行函数
                    //data是从ashx文件返回来的信息，可以是字符串也可以是一个对象
                    //如果data是字符串，则可以输出data的值
                    //如果data是对象，则可以将这个对象的各属性值赋给其他变量
                    //textStatus是表示状态的字符串，这里textStatus的值是"success"
                    // alert('验证码发送成功');
                    var interval = setInterval(function (){
                        if(countdown==0){
                            codea.attr('disabled', false)
                            codea.text('发送验证码')
                            countdown = 60
                            clearInterval(interval)
                            interval = null
                        }else{
                            codea.attr('disabled', true)
                            codea.text('重新发送(' + countdown + ')')
                            countdown--;
                        }
                    }, 1000)
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {  //连接至ashx文件失败时，执行函数
                    //XMLHttpRequest在这个例子里没有用到
                    //textStatus是表示状态的字符串，这里textStatus的值是"error"
                    //errorThrown包含连接失败的信息，可以输出查看
                    alert("发送验证码失败！！");
                }
            });
        }

        function register() {
            //jQuery写法
            var email = $('#email').val();
            var password = $('#password').val();
            var code = $('#code').val();
            //JavaScript原生写法
            //var user = document.getElementById('user').value;
            //var password = document.getElementById('password').value;
            var registerUrl = '/api/user/register/' + email + '/' + password + '/' + code

            $.ajax({
                type: "get",  //post put get 等等
                url: registerUrl,
                //编写注册功能时，要将异步设置为false（缺省为true）
                //如果async是ture,对于FireFox浏览器，会刷新掉alert()弹出框的内容
                //对于Chrome浏览器，第一次注册时会执行error的回调函数，输出“请求在连接过程中出现错误..”
                async:false,
                // data: {  //要传入ashx文件的数据
                //     "user": user,
                //     "password": password
                // },
                success: function (data, textStatus) {
                    //连接至ashx文件成功时，执行函数
                    //data是从ashx文件返回来的信息，可以是字符串也可以是一个对象
                    //如果data是字符串，则可以输出data的值
                    //如果data是对象，则可以将这个对象的各属性值赋给其他变量
                    //textStatus是表示状态的字符串，这里textStatus的值是"success"
                    if(data == 'false'){
                        alert('注册失败！')
                    }else{
                        alert('注册成功！')
                        window.open("login.html", "_blank");
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {  //连接至ashx文件失败时，执行函数
                    //XMLHttpRequest在这个例子里没有用到
                    //textStatus是表示状态的字符串，这里textStatus的值是"error"
                    //errorThrown包含连接失败的信息，可以输出查看
                    alert("注册失败！！");
                }
            });
        }
    </script>
</head>

<body>
<!-- 注册表单 -->
<form style="margin-left:500px;margin-top:200px;">
    <div class="form-group">
        <label for="email" stype="display:inline;">邮箱：</label>
        <input type="text" class="form-control" id="email" style="display:inline;width:200px;" autocomplete="off" />
    </div>
    <div class="form-group">
        <label for="password" style="display:inline;">密码：</label>
        <input type="text" class="form-control" id="password" style="display:inline;width:200px;" autocomplete="off" />
    </div>

    <div class="form-group">
        <label for="code" style="display:inline;">验证码：</label>
        <input type="text" class="form-control" id="code" style="display:inline;width:200px;" autocomplete="off" />
        <button class="btn btn-default" id="codea" type="button" onclick="codefun()">发送验证码</button>
    </div>
    <button type="submit" class="btn btn-primary" onclick="register()">确认注册</button>
</form>
</body>
</html>